Ausnahmeklassen und OTR-Texte
Ausnahmeklassen sollte inzwischen jeder kennen. Nach wie vor gibt es die Möglichkeit, eine Ausnahmeklasse mit T100-Unterstützung oder ohne anzulegen. Ich verwende gerne die reinen Ausnahmeklassen, also ohne die Unterstützung einer T100-Nachricht. Hauptsächlich tue ich dies aus zwei Gründen:
- Aus meiner Sicht sind die T100-Nachrichten zu umständlich zu handhaben, da es kein MESSAGE RAISING-Konstrukt für Ausnahmeklassen gibt. Erst ab Release 750 ist der Zusatz RAISE EXCEPTION TYPE … MESSAGE möglich.
- Die Zuweisung der Parameter zu der entsprechenden T100-Nachricht finde ich ebenfalls umständlich. Man muss die Attribute, die man für die Ausnahmeklasse definiert hat, den entsprechenden &1 bis &4 Parametern der Nachricht zuordnen.
Zusätzlich könnte man als dritten Grund noch anführen, dass der Meldungstext nicht aus der Ausnahme selber kommen sollte, sondern vom jeweils aufrufenden Programm definiert werden sollte. Darüber könnte man jedoch gut streiten…
T100-Nachricht
Ausnahmeklassen mit T100-Nachricht sind jedoch sehr günstig, wenn es darum geht, Fehlermeldungen zu protokollieren. Da geht aus meiner Sicht kaum ein Weg an dem Application Log vorbei und diesen füllt man am besten mit MESSAGE.
Attribute einer Ausnahme
Eine Ausnahme kann ohne Texte und ohne weitere Attribute verwendet werden. Der Aufruf erfolgt dann einfach per
RAISE EXCEPTION TYPE zcx_demo.
Es ist wieder eine Glaubensfrage, ob man unterschiedliche Ausnahmen auch in unterschiedlichen Ausnahmeklassen definieren sollte, oder ob man mehrere Aspekte in einer Ausnahmeklasse zusammenfassen sollte. Ich mache es mal so, mal so… Das hängt von irgendwas ab, das ich nicht definieren kann. Auf jeden Fall ist eine diskrete Ausnahmeklasse einfacher zu verwenden, als eine mit Attributen. Der Aufruf mit Attributen erfordert nämlich, dass der komplette Name der Ausnahmeklasse erneut verwendet werden muss:
RAISE EXCEPTION TYPE zcx_demo
EXPORTING
textid = zcx_demo=>no_data.
Das macht den Quelltext unübersichtlicher und erzeugt eventuell unnötiges code noise. Die Alternative wäre folgende:
RAISE EXCEPTION TYPE zcx_demo_no_data.
OTR-Texte
OTR ist die Abkürzung für Online Text Repository.
Wenn man sich dafür entschieden hat, in der Ausnahmeklasse ein zusätzliches Attribut zu definieren, dann wird zu diesem Attribut, das automatisch immer vom Typ SOTR_CONC ist, eine GUID erzeugt. Diese zum Attribut erzeugte GUID ist ein eindeutiger OTR-Schlüssel.
In der SE24 kann dieser Text einfach im Editor geändert werden.
OTR Übersetzung
Mit der Übersetzung kommt man das erste Mal etwas ins Straucheln, denn wenn man meint, über Springen – Übersetzung diese Texte in eine andere Sprache übersetzen zu können, dann bekommt man nur die Meldung “Leere Objektliste” (TL565).
Die OTR-Texte müssen über die Übersetzungstransaktion SE63 übersetzt werden:
In dem Einstiegsbild muss die OTR-ID, anscheinend auch Konzept genannt, eingegeben werden:
Nach Klicken auf Bearbeiten erscheint der bekannte Übersetzungsdialog.
OTR-Texte bearbeiten
OTR-Texte können unabhängig von der Applikation bearbeitet und erstellt werden. Die Transaktion dafür heißt leider nicht SOTR (diese Transaktion ruft den Testreport zur Überprüfung der SAPoffice Empfangs-API auf), sondern lautet SOTR_EDIT. In das Feld Konzept muss die OTR-GUID eingetragen werden. Hier können Kurztexte als auch Langtexte bearbeitet werden.
Anscheinend hat sich SAP mit den OTR-Texten große Dinge überlegt, denn es kann zu einem Text ein Alias angelegt werden und man kann anscheinend einen Kontext zuordnen. Wofür auch immer man das sinnvoll nutzen könnte…
Folgende Bausteine können genutzt werden, um OTR-Texte zu lesen, zu ändern oder zu löschen:
- SOTR_GET_CONCEPT
- SOTR_DELETE_CONCEPT
- SOTR_CREATE_CONCEPT
OTR-Texte und Eclipse
Die OTR-Texte machen es jedenfalls schwer möglich, Attribute zu einer Ausnahmeklasse in Eclipse anzulegen, denn hierfür muss diese eindeutige OTR-GUID erzeugt werden. Der Umweg, diese GUID in SOTR_EDIT anzulegen, um diese dann in Eclipse einzubinden, ist jedenfalls mehr als umständlich.
- Meine Eclipse-Plugins - 22. November 2024
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024